A good developing environment is quite important in the development of a relatively complex system. Under such a environment, work is divided clearly and team members could cooperate the most efficiently and have the work done in high quality.

\section{Environment}
Our Tactic language uses flex 2.5.35 to compile our lex file, and bison (GNU Bison) 2.3 to compile our yacc file. We use C in the back end to implement our interpreter. Tactics language use ".t" as the suffix of a source code file.\\\\
As we have 5 team members, we use a svn version control system provided by Google to develop our system. 
For our document, we use LaTex to edit our final report and related documents. Because this is a relatively complex system, we create four folders in our repository to avoid the confusion among mass amount of files. The folders are named translator, document, develop and testcase. All the source codes to build our system are in a folder named translator. All of our document are stored in the document folder. The code segmentation in our developing process is in the develop folder. And our test cases is the testcase folder.

\section{Compiler Components}
Our lex and yacc are defined in the lex file is named t.l and the yacc file is named t.y, respectively. We also built our own librarys.  The file ast.h defines all the data structure we used in building our AST. The file internal.h and internal.c defines functions to build up the node of the AST when yacc doing the reduction. The file backend.h and backend.c provides the methods to validate the AST generated in yacc. The file common.h provided error handler for our system.  The file container.c and container.h provided a basic double linklist data structure and related method as the basis to implement the data structure defined by our language. The file tactics.c provides main() function as the entry of our system.   \\\\
For our document, the whole team maintains the language reference and language tutorial to the latest version as our language changes slightly in the process of implementing our language in the folder. Each team member also maintains a individual report in the folder.
\section{Integration}

In order to intergrated the system, we use a makefile to compile the source files in our translator folder. We also use a makefile to complie the .tex files to generate our final report in the document folder.